package api.homework.two.teacherHW;

import java.io.BufferedReader;

/**
 * 注意：当多个线程共享数据时。很有可能会发生线程安全问题
 * 同一个数据可能会被多个线程操作多次 - 读、写
 *
 * 一个线程一系列操作后，数据得需要发生改变
 * 此时，另一个线程进来了，它读取的数据可能是上一个线程未改变之前的数据
 * 解决：锁
 *
 * @author lwj
 * @date 2025-03-12
 * @vesion 1.0.0
 */
public class MainTest {
    public static void main(String[] args) {
        // 实例化 Runnable 对象 - 封装 50 张票，及售票行为
        MyRunnable myRunnable = new MyRunnable();

        // 实例化多个线程对象 - 并指向相同的 Runnable 对象
        // 从而，实现了多个线程共享相同的一个 Runnable 对象
        // 也就是说，多个线程出售相同的 50 张票
        Thread t1 = new Thread(myRunnable,"窗口一");
        Thread t2 = new Thread(myRunnable,"窗口二");
        Thread t3 = new Thread(myRunnable,"窗口三");

        // 启动线程
        t1.start();
        t2.start();
        t3.start();
    }
}
